using System;
using Octubre.Framework;
using Octubre.Core.Entities;
using octubre.Core.Records;

namespace Octubre.Interaccion
{
	class MainClass : Application
    {
		static MainClass()
		{
			//Estableciendo configuraciones de aplicacion

			//Esta clave es un valor privado generado en cada
			//instalacion para fortalecer en hash de las contraseñas
			//Si si cambia este valor se perderan TODAS las
			//contraseñas de la base de datos
			//Puede ser cualquier cadena
			PrivateSignature = "tosh21DaFt24cArd?HipHisT47eON27goD+Dow~Lulls";

			//Estableciendo configuiraciones de registros

			//Esta es la contraseña del superusuario
			//Se setea en cada instalacion
			//El password original es @#arti93 pasado por sha1 pero
			//no se guarda en codigo para que no sea hackeable
			//Todos los clientes ya mandan el password al servidor
			//en MD5, luego lo cifran la con firma privada antes
			//de mandarlo a la base de datos
			Root.Password = "4d5dfd0b38bfc49724a9b355958ad801";
		}

		public static void Main()
		{
			Start();

			var rootuser = Database.Load<User,Root>();

			Console.WriteLine(rootuser.Name == "root");
			Console.WriteLine(rootuser.Password == HashPassword(Root.Password));

		}
	}
}